; LLVM IR from jgaeddert/liquid-dsp :: src/fft/src (fftf)

; 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.fftplan_s = type { i32, ptr, ptr, i32, i32, i32, i32, ptr, ptr, ptr, %union.anon }
%union.anon = type { %struct.anon.1 }
%struct.anon.1 = type { i32, i32, ptr, ptr, ptr, ptr, ptr, ptr }

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

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

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

88:                                               ; preds = %1
  %89 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 0
  %90 = load float, ptr %89, align 4
  %91 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 1
  %92 = load float, ptr %91, align 4
  %93 = getelementptr inbounds { float, float }, ptr %6, i32 0, i32 0
  %94 = getelementptr inbounds { float, float }, ptr %6, i32 0, i32 1
  store float %90, ptr %93, align 4
  store float %92, ptr %94, align 4
  %95 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 0
  %96 = load float, ptr %95, align 4
  %97 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 1
  %98 = load float, ptr %97, align 4
  %99 = fneg float %98
  %100 = fneg float %96
  %101 = fneg float %99
  %102 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 0
  %103 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 1
  store float %100, ptr %102, align 4
  store float %101, ptr %103, align 4
  %104 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 0
  %105 = load float, ptr %104, align 4
  %106 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 1
  %107 = load float, ptr %106, align 4
  %108 = fneg float %105
  %109 = fneg float %107
  %110 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 0
  %111 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 1
  store float %108, ptr %110, align 4
  store float %109, ptr %111, align 4
  %112 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 0
  %113 = load float, ptr %112, align 4
  %114 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 1
  %115 = load float, ptr %114, align 4
  %116 = fneg float %115
  %117 = getelementptr inbounds { float, float }, ptr %9, i32 0, i32 0
  %118 = getelementptr inbounds { float, float }, ptr %9, i32 0, i32 1
  store float %113, ptr %117, align 4
  store float %116, ptr %118, align 4
  br label %150

119:                                              ; preds = %1
  %120 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 0
  %121 = load float, ptr %120, align 4
  %122 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 1
  %123 = load float, ptr %122, align 4
  %124 = fneg float %123
  %125 = getelementptr inbounds { float, float }, ptr %6, i32 0, i32 0
  %126 = getelementptr inbounds { float, float }, ptr %6, i32 0, i32 1
  store float %121, ptr %125, align 4
  store float %124, ptr %126, align 4
  %127 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 0
  %128 = load float, ptr %127, align 4
  %129 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 1
  %130 = load float, ptr %129, align 4
  %131 = fneg float %128
  %132 = fneg float %130
  %133 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 0
  %134 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 1
  store float %131, ptr %133, align 4
  store float %132, ptr %134, align 4
  %135 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 0
  %136 = load float, ptr %135, align 4
  %137 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 1
  %138 = load float, ptr %137, align 4
  %139 = fneg float %138
  %140 = fneg float %136
  %141 = fneg float %139
  %142 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 0
  %143 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 1
  store float %140, ptr %142, align 4
  store float %141, ptr %143, align 4
  %144 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 0
  %145 = load float, ptr %144, align 4
  %146 = getelementptr inbounds { float, float }, ptr %5, i32 0, i32 1
  %147 = load float, ptr %146, align 4
  %148 = getelementptr inbounds { float, float }, ptr %9, i32 0, i32 0
  %149 = getelementptr inbounds { float, float }, ptr %9, i32 0, i32 1
  store float %145, ptr %148, align 4
  store float %147, ptr %149, align 4
  br label %150

150:                                              ; preds = %119, %88
  %151 = load ptr, ptr %3, align 8, !tbaa !5
  %152 = getelementptr inbounds { float, float }, ptr %151, i64 0
  %153 = getelementptr inbounds { float, float }, ptr %152, i32 0, i32 0
  %154 = load float, ptr %153, align 4
  %155 = getelementptr inbounds { float, float }, ptr %152, i32 0, i32 1
  %156 = load float, ptr %155, align 4
  %157 = load ptr, ptr %3, align 8, !tbaa !5
  %158 = getelementptr inbounds { float, float }, ptr %157, i64 1
  %159 = getelementptr inbounds { float, float }, ptr %158, i32 0, i32 0
  %160 = load float, ptr %159, align 4
  %161 = getelementptr inbounds { float, float }, ptr %158, i32 0, i32 1
  %162 = load float, ptr %161, align 4
  %163 = getelementptr inbounds { float, float }, ptr %6, i32 0, i32 0
  %164 = load float, ptr %163, align 4
  %165 = getelementptr inbounds { float, float }, ptr %6, i32 0, i32 1
  %166 = load float, ptr %165, align 4
  %167 = fmul float %160, %164
  %168 = fmul float %162, %166
  %169 = fmul float %160, %166
  %170 = fmul float %162, %164
  %171 = fsub float %167, %168
  %172 = fadd float %169, %170
  %173 = fcmp uno float %171, %171
  br i1 %173, label %174, label %182, !prof !14

174:                                              ; preds = %150
  %175 = fcmp uno float %172, %172
  br i1 %175, label %176, label %182, !prof !14

176:                                              ; preds = %174
  %177 = call <2 x float> @__mulsc3(float noundef %160, float noundef %162, float noundef %164, float noundef %166) #2
  store <2 x float> %177, ptr %10, align 4
  %178 = getelementptr inbounds { float, float }, ptr %10, i32 0, i32 0
  %179 = load float, ptr %178, align 4
  %180 = getelementptr inbounds { float, float }, ptr %10, i32 0, i32 1
  %181 = load float, ptr %180, align 4
  br label %182

182:                                              ; preds = %176, %174, %150
  %183 = phi float [ %171, %150 ], [ %171, %174 ], [ %179, %176 ]
  %184 = phi float [ %172, %150 ], [ %172, %174 ], [ %181, %176 ]
  %185 = fadd float %154, %183
  %186 = fadd float %156, %184
  %187 = load ptr, ptr %3, align 8, !tbaa !5
  %188 = getelementptr inbounds { float, float }, ptr %187, i64 2
  %189 = getelementptr inbounds { float, float }, ptr %188, i32 0, i32 0
  %190 = load float, ptr %189, align 4
  %191 = getelementptr inbounds { float, float }, ptr %188, i32 0, i32 1
  %192 = load float, ptr %191, align 4
  %193 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 0
  %194 = load float, ptr %193, align 4
  %195 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 1
  %196 = load float, ptr %195, align 4
  %197 = fmul float %190, %194
  %198 = fmul float %192, %196
  %199 = fmul float %190, %196
  %200 = fmul float %192, %194
  %201 = fsub float %197, %198
  %202 = fadd float %199, %200
  %203 = fcmp uno float %201, %201
  br i1 %203, label %204, label %212, !prof !14

204:                                              ; preds = %182
  %205 = fcmp uno float %202, %202
  br i1 %205, label %206, label %212, !prof !14

206:                                              ; preds = %204
  %207 = call <2 x float> @__mulsc3(float noundef %190, float noundef %192, float noundef %194, float noundef %196) #2
  store <2 x float> %207, ptr %11, align 4
  %208 = getelementptr inbounds { float, float }, ptr %11, i32 0, i32 0
  %209 = load float, ptr %208, align 4
  %210 = getelementptr inbounds { float, float }, ptr %11, i32 0, i32 1
  %211 = load float, ptr %210, align 4
  br label %212

212:                                              ; preds = %206, %204, %182
  %213 = phi float [ %201, %182 ], [ %201, %204 ], [ %209, %206 ]
  %214 = phi float [ %202, %182 ], [ %202, %204 ], [ %211, %206 ]
  %215 = fadd float %185, %213
  %216 = fadd float %186, %214
  %217 = load ptr, ptr %3, align 8, !tbaa !5
  %218 = getelementptr inbounds { float, float }, ptr %217, i64 3
  %219 = getelementptr inbounds { float, float }, ptr %218, i32 0, i32 0
  %220 = load float, ptr %219, align 4
  %221 = getelementptr inbounds { float, float }, ptr %218, i32 0, i32 1
  %222 = load float, ptr %221, align 4
  %223 = fsub float %215, %220
  %224 = fsub float %216, %222
  %225 = load ptr, ptr %3, align 8, !tbaa !5
  %226 = getelementptr inbounds { float, float }, ptr %225, i64 4
  %227 = getelementptr inbounds { float, float }, ptr %226, i32 0, i32 0
  %228 = load float, ptr %227, align 4
  %229 = getelementptr inbounds { float, float }, ptr %226, i32 0, i32 1
  %230 = load float, ptr %229, align 4
  %231 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 0
  %232 = load float, ptr %231, align 4
  %233 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 1
  %234 = load float, ptr %233, align 4
  %235 = fmul float %228, %232
  %236 = fmul float %230, %234
  %237 = fmul float %228, %234
  %238 = fmul float %230, %232
  %239 = fsub float %235, %236
  %240 = fadd float %237, %238
  %241 = fcmp uno float %239, %239
  br i1 %241, label %242, label %250, !prof !14

242:                                              ; preds = %212
  %243 = fcmp uno float %240, %240
  br i1 %243, label %244, label %250, !prof !14

244:                                              ; preds = %242
  %245 = call <2 x float> @__mulsc3(float noundef %228, float noundef %230, float noundef %232, float noundef %234) #2
  store <2 x float> %245, ptr %12, align 4
  %246 = getelementptr inbounds { float, float }, ptr %12, i32 0, i32 0
  %247 = load float, ptr %246, align 4
  %248 = getelementptr inbounds { float, float }, ptr %12, i32 0, i32 1
  %249 = load float, ptr %248, align 4
  br label %250

250:                                              ; preds = %244, %242, %212
  %251 = phi float [ %239, %212 ], [ %239, %242 ], [ %247, %244 ]
  %252 = phi float [ %240, %212 ], [ %240, %242 ], [ %249, %244 ]
  %253 = fadd float %223, %251
  %254 = fadd float %224, %252
  %255 = load ptr, ptr %3, align 8, !tbaa !5
  %256 = getelementptr inbounds { float, float }, ptr %255, i64 5
  %257 = getelementptr inbounds { float, float }, ptr %256, i32 0, i32 0
  %258 = load float, ptr %257, align 4
  %259 = getelementptr inbounds { float, float }, ptr %256, i32 0, i32 1
  %260 = load float, ptr %259, align 4
  %261 = getelementptr inbounds { float, float }, ptr %9, i32 0, i32 0
  %262 = load float, ptr %261, align 4
  %263 = getelementptr inbounds { float, float }, ptr %9, i32 0, i32 1
  %264 = load float, ptr %263, align 4
  %265 = fmul float %258, %262
  %266 = fmul float %260, %264
  %267 = fmul float %258, %264
  %268 = fmul float %260, %262
  %269 = fsub float %265, %266
  %270 = fadd float %267, %268
  %271 = fcmp uno float %269, %269
  br i1 %271, label %272, label %280, !prof !14

272:                                              ; preds = %250
  %273 = fcmp uno float %270, %270
  br i1 %273, label %274, label %280, !prof !14

274:                                              ; preds = %272
  %275 = call <2 x float> @__mulsc3(float noundef %258, float noundef %260, float noundef %262, float noundef %264) #2
  store <2 x float> %275, ptr %13, align 4
  %276 = getelementptr inbounds { float, float }, ptr %13, i32 0, i32 0
  %277 = load float, ptr %276, align 4
  %278 = getelementptr inbounds { float, float }, ptr %13, i32 0, i32 1
  %279 = load float, ptr %278, align 4
  br label %280

280:                                              ; preds = %274, %272, %250
  %281 = phi float [ %269, %250 ], [ %269, %272 ], [ %277, %274 ]
  %282 = phi float [ %270, %250 ], [ %270, %272 ], [ %279, %274 ]
  %283 = fadd float %253, %281
  %284 = fadd float %254, %282
  %285 = load ptr, ptr %4, align 8, !tbaa !5
  %286 = getelementptr inbounds { float, float }, ptr %285, i64 1
  %287 = getelementptr inbounds { float, float }, ptr %286, i32 0, i32 0
  %288 = getelementptr inbounds { float, float }, ptr %286, i32 0, i32 1
  store float %283, ptr %287, align 4
  store float %284, ptr %288, align 4
  %289 = load ptr, ptr %3, align 8, !tbaa !5
  %290 = getelementptr inbounds { float, float }, ptr %289, i64 0
  %291 = getelementptr inbounds { float, float }, ptr %290, i32 0, i32 0
  %292 = load float, ptr %291, align 4
  %293 = getelementptr inbounds { float, float }, ptr %290, i32 0, i32 1
  %294 = load float, ptr %293, align 4
  %295 = load ptr, ptr %3, align 8, !tbaa !5
  %296 = getelementptr inbounds { float, float }, ptr %295, i64 1
  %297 = getelementptr inbounds { float, float }, ptr %296, i32 0, i32 0
  %298 = load float, ptr %297, align 4
  %299 = getelementptr inbounds { float, float }, ptr %296, i32 0, i32 1
  %300 = load float, ptr %299, align 4
  %301 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 0
  %302 = load float, ptr %301, align 4
  %303 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 1
  %304 = load float, ptr %303, align 4
  %305 = fmul float %298, %302
  %306 = fmul float %300, %304
  %307 = fmul float %298, %304
  %308 = fmul float %300, %302
  %309 = fsub float %305, %306
  %310 = fadd float %307, %308
  %311 = fcmp uno float %309, %309
  br i1 %311, label %312, label %320, !prof !14

312:                                              ; preds = %280
  %313 = fcmp uno float %310, %310
  br i1 %313, label %314, label %320, !prof !14

314:                                              ; preds = %312
  %315 = call <2 x float> @__mulsc3(float noundef %298, float noundef %300, float noundef %302, float noundef %304) #2
  store <2 x float> %315, ptr %14, align 4
  %316 = getelementptr inbounds { float, float }, ptr %14, i32 0, i32 0
  %317 = load float, ptr %316, align 4
  %318 = getelementptr inbounds { float, float }, ptr %14, i32 0, i32 1
  %319 = load float, ptr %318, align 4
  br label %320

320:                                              ; preds = %314, %312, %280
  %321 = phi float [ %309, %280 ], [ %309, %312 ], [ %317, %314 ]
  %322 = phi float [ %310, %280 ], [ %310, %312 ], [ %319, %314 ]
  %323 = fadd float %292, %321
  %324 = fadd float %294, %322
  %325 = load ptr, ptr %3, align 8, !tbaa !5
  %326 = getelementptr inbounds { float, float }, ptr %325, i64 2
  %327 = getelementptr inbounds { float, float }, ptr %326, i32 0, i32 0
  %328 = load float, ptr %327, align 4
  %329 = getelementptr inbounds { float, float }, ptr %326, i32 0, i32 1
  %330 = load float, ptr %329, align 4
  %331 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 0
  %332 = load float, ptr %331, align 4
  %333 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 1
  %334 = load float, ptr %333, align 4
  %335 = fmul float %328, %332
  %336 = fmul float %330, %334
  %337 = fmul float %328, %334
  %338 = fmul float %330, %332
  %339 = fsub float %335, %336
  %340 = fadd float %337, %338
  %341 = fcmp uno float %339, %339
  br i1 %341, label %342, label %350, !prof !14

342:                                              ; preds = %320
  %343 = fcmp uno float %340, %340
  br i1 %343, label %344, label %350, !prof !14

344:                                              ; preds = %342
  %345 = call <2 x float> @__mulsc3(float noundef %328, float noundef %330, float noundef %332, float noundef %334) #2
  store <2 x float> %345, ptr %15, align 4
  %346 = getelementptr inbounds { float, float }, ptr %15, i32 0, i32 0
  %347 = load float, ptr %346, align 4
  %348 = getelementptr inbounds { float, float }, ptr %15, i32 0, i32 1
  %349 = load float, ptr %348, align 4
  br label %350

350:                                              ; preds = %344, %342, %320
  %351 = phi float [ %339, %320 ], [ %339, %342 ], [ %347, %344 ]
  %352 = phi float [ %340, %320 ], [ %340, %342 ], [ %349, %344 ]
  %353 = fadd float %323, %351
  %354 = fadd float %324, %352
  %355 = load ptr, ptr %3, align 8, !tbaa !5
  %356 = getelementptr inbounds { float, float }, ptr %355, i64 3
  %357 = getelementptr inbounds { float, float }, ptr %356, i32 0, i32 0
  %358 = load float, ptr %357, align 4
  %359 = getelementptr inbounds { float, float }, ptr %356, i32 0, i32 1
  %360 = load float, ptr %359, align 4
  %361 = fadd float %353, %358
  %362 = fadd float %354, %360
  %363 = load ptr, ptr %3, align 8, !tbaa !5
  %364 = getelementptr inbounds { float, float }, ptr %363, i64 4
  %365 = getelementptr inbounds { float, float }, ptr %364, i32 0, i32 0
  %366 = load float, ptr %365, align 4
  %367 = getelementptr inbounds { float, float }, ptr %364, i32 0, i32 1
  %368 = load float, ptr %367, align 4
  %369 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 0
  %370 = load float, ptr %369, align 4
  %371 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 1
  %372 = load float, ptr %371, align 4
  %373 = fmul float %366, %370
  %374 = fmul float %368, %372
  %375 = fmul float %366, %372
  %376 = fmul float %368, %370
  %377 = fsub float %373, %374
  %378 = fadd float %375, %376
  %379 = fcmp uno float %377, %377
  br i1 %379, label %380, label %388, !prof !14

380:                                              ; preds = %350
  %381 = fcmp uno float %378, %378
  br i1 %381, label %382, label %388, !prof !14

382:                                              ; preds = %380
  %383 = call <2 x float> @__mulsc3(float noundef %366, float noundef %368, float noundef %370, float noundef %372) #2
  store <2 x float> %383, ptr %16, align 4
  %384 = getelementptr inbounds { float, float }, ptr %16, i32 0, i32 0
  %385 = load float, ptr %384, align 4
  %386 = getelementptr inbounds { float, float }, ptr %16, i32 0, i32 1
  %387 = load float, ptr %386, align 4
  br label %388

388:                                              ; preds = %382, %380, %350
  %389 = phi float [ %377, %350 ], [ %377, %380 ], [ %385, %382 ]
  %390 = phi float [ %378, %350 ], [ %378, %380 ], [ %387, %382 ]
  %391 = fadd float %361, %389
  %392 = fadd float %362, %390
  %393 = load ptr, ptr %3, align 8, !tbaa !5
  %394 = getelementptr inbounds { float, float }, ptr %393, i64 5
  %395 = getelementptr inbounds { float, float }, ptr %394, i32 0, i32 0
  %396 = load float, ptr %395, align 4
  %397 = getelementptr inbounds { float, float }, ptr %394, i32 0, i32 1
  %398 = load float, ptr %397, align 4
  %399 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 0
  %400 = load float, ptr %399, align 4
  %401 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 1
  %402 = load float, ptr %401, align 4
  %403 = fmul float %396, %400
  %404 = fmul float %398, %402
  %405 = fmul float %396, %402
  %406 = fmul float %398, %400
  %407 = fsub float %403, %404
  %408 = fadd float %405, %406
  %409 = fcmp uno float %407, %407
  br i1 %409, label %410, label %418, !prof !14

410:                                              ; preds = %388
  %411 = fcmp uno float %408, %408
  br i1 %411, label %412, label %418, !prof !14

412:                                              ; preds = %410
  %413 = call <2 x float> @__mulsc3(float noundef %396, float noundef %398, float noundef %400, float noundef %402) #2
  store <2 x float> %413, ptr %17, align 4
  %414 = getelementptr inbounds { float, float }, ptr %17, i32 0, i32 0
  %415 = load float, ptr %414, align 4
  %416 = getelementptr inbounds { float, float }, ptr %17, i32 0, i32 1
  %417 = load float, ptr %416, align 4
  br label %418

418:                                              ; preds = %412, %410, %388
  %419 = phi float [ %407, %388 ], [ %407, %410 ], [ %415, %412 ]
  %420 = phi float [ %408, %388 ], [ %408, %410 ], [ %417, %412 ]
  %421 = fadd float %391, %419
  %422 = fadd float %392, %420
  %423 = load ptr, ptr %4, align 8, !tbaa !5
  %424 = getelementptr inbounds { float, float }, ptr %423, i64 2
  %425 = getelementptr inbounds { float, float }, ptr %424, i32 0, i32 0
  %426 = getelementptr inbounds { float, float }, ptr %424, i32 0, i32 1
  store float %421, ptr %425, align 4
  store float %422, ptr %426, align 4
  %427 = load ptr, ptr %3, align 8, !tbaa !5
  %428 = getelementptr inbounds { float, float }, ptr %427, i64 0
  %429 = getelementptr inbounds { float, float }, ptr %428, i32 0, i32 0
  %430 = load float, ptr %429, align 4
  %431 = getelementptr inbounds { float, float }, ptr %428, i32 0, i32 1
  %432 = load float, ptr %431, align 4
  %433 = load ptr, ptr %3, align 8, !tbaa !5
  %434 = getelementptr inbounds { float, float }, ptr %433, i64 1
  %435 = getelementptr inbounds { float, float }, ptr %434, i32 0, i32 0
  %436 = load float, ptr %435, align 4
  %437 = getelementptr inbounds { float, float }, ptr %434, i32 0, i32 1
  %438 = load float, ptr %437, align 4
  %439 = fsub float %430, %436
  %440 = fsub float %432, %438
  %441 = load ptr, ptr %3, align 8, !tbaa !5
  %442 = getelementptr inbounds { float, float }, ptr %441, i64 2
  %443 = getelementptr inbounds { float, float }, ptr %442, i32 0, i32 0
  %444 = load float, ptr %443, align 4
  %445 = getelementptr inbounds { float, float }, ptr %442, i32 0, i32 1
  %446 = load float, ptr %445, align 4
  %447 = fadd float %439, %444
  %448 = fadd float %440, %446
  %449 = load ptr, ptr %3, align 8, !tbaa !5
  %450 = getelementptr inbounds { float, float }, ptr %449, i64 3
  %451 = getelementptr inbounds { float, float }, ptr %450, i32 0, i32 0
  %452 = load float, ptr %451, align 4
  %453 = getelementptr inbounds { float, float }, ptr %450, i32 0, i32 1
  %454 = load float, ptr %453, align 4
  %455 = fsub float %447, %452
  %456 = fsub float %448, %454
  %457 = load ptr, ptr %3, align 8, !tbaa !5
  %458 = getelementptr inbounds { float, float }, ptr %457, i64 4
  %459 = getelementptr inbounds { float, float }, ptr %458, i32 0, i32 0
  %460 = load float, ptr %459, align 4
  %461 = getelementptr inbounds { float, float }, ptr %458, i32 0, i32 1
  %462 = load float, ptr %461, align 4
  %463 = fadd float %455, %460
  %464 = fadd float %456, %462
  %465 = load ptr, ptr %3, align 8, !tbaa !5
  %466 = getelementptr inbounds { float, float }, ptr %465, i64 5
  %467 = getelementptr inbounds { float, float }, ptr %466, i32 0, i32 0
  %468 = load float, ptr %467, align 4
  %469 = getelementptr inbounds { float, float }, ptr %466, i32 0, i32 1
  %470 = load float, ptr %469, align 4
  %471 = fsub float %463, %468
  %472 = fsub float %464, %470
  %473 = load ptr, ptr %4, align 8, !tbaa !5
  %474 = getelementptr inbounds { float, float }, ptr %473, i64 3
  %475 = getelementptr inbounds { float, float }, ptr %474, i32 0, i32 0
  %476 = getelementptr inbounds { float, float }, ptr %474, i32 0, i32 1
  store float %471, ptr %475, align 4
  store float %472, ptr %476, align 4
  %477 = load ptr, ptr %3, align 8, !tbaa !5
  %478 = getelementptr inbounds { float, float }, ptr %477, i64 0
  %479 = getelementptr inbounds { float, float }, ptr %478, i32 0, i32 0
  %480 = load float, ptr %479, align 4
  %481 = getelementptr inbounds { float, float }, ptr %478, i32 0, i32 1
  %482 = load float, ptr %481, align 4
  %483 = load ptr, ptr %3, align 8, !tbaa !5
  %484 = getelementptr inbounds { float, float }, ptr %483, i64 1
  %485 = getelementptr inbounds { float, float }, ptr %484, i32 0, i32 0
  %486 = load float, ptr %485, align 4
  %487 = getelementptr inbounds { float, float }, ptr %484, i32 0, i32 1
  %488 = load float, ptr %487, align 4
  %489 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 0
  %490 = load float, ptr %489, align 4
  %491 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 1
  %492 = load float, ptr %491, align 4
  %493 = fmul float %486, %490
  %494 = fmul float %488, %492
  %495 = fmul float %486, %492
  %496 = fmul float %488, %490
  %497 = fsub float %493, %494
  %498 = fadd float %495, %496
  %499 = fcmp uno float %497, %497
  br i1 %499, label %500, label %508, !prof !14

500:                                              ; preds = %418
  %501 = fcmp uno float %498, %498
  br i1 %501, label %502, label %508, !prof !14

502:                                              ; preds = %500
  %503 = call <2 x float> @__mulsc3(float noundef %486, float noundef %488, float noundef %490, float noundef %492) #2
  store <2 x float> %503, ptr %18, align 4
  %504 = getelementptr inbounds { float, float }, ptr %18, i32 0, i32 0
  %505 = load float, ptr %504, align 4
  %506 = getelementptr inbounds { float, float }, ptr %18, i32 0, i32 1
  %507 = load float, ptr %506, align 4
  br label %508

508:                                              ; preds = %502, %500, %418
  %509 = phi float [ %497, %418 ], [ %497, %500 ], [ %505, %502 ]
  %510 = phi float [ %498, %418 ], [ %498, %500 ], [ %507, %502 ]
  %511 = fadd float %480, %509
  %512 = fadd float %482, %510
  %513 = load ptr, ptr %3, align 8, !tbaa !5
  %514 = getelementptr inbounds { float, float }, ptr %513, i64 2
  %515 = getelementptr inbounds { float, float }, ptr %514, i32 0, i32 0
  %516 = load float, ptr %515, align 4
  %517 = getelementptr inbounds { float, float }, ptr %514, i32 0, i32 1
  %518 = load float, ptr %517, align 4
  %519 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 0
  %520 = load float, ptr %519, align 4
  %521 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 1
  %522 = load float, ptr %521, align 4
  %523 = fmul float %516, %520
  %524 = fmul float %518, %522
  %525 = fmul float %516, %522
  %526 = fmul float %518, %520
  %527 = fsub float %523, %524
  %528 = fadd float %525, %526
  %529 = fcmp uno float %527, %527
  br i1 %529, label %530, label %538, !prof !14

530:                                              ; preds = %508
  %531 = fcmp uno float %528, %528
  br i1 %531, label %532, label %538, !prof !14

532:                                              ; preds = %530
  %533 = call <2 x float> @__mulsc3(float noundef %516, float noundef %518, float noundef %520, float noundef %522) #2
  store <2 x float> %533, ptr %19, align 4
  %534 = getelementptr inbounds { float, float }, ptr %19, i32 0, i32 0
  %535 = load float, ptr %534, align 4
  %536 = getelementptr inbounds { float, float }, ptr %19, i32 0, i32 1
  %537 = load float, ptr %536, align 4
  br label %538

538:                                              ; preds = %532, %530, %508
  %539 = phi float [ %527, %508 ], [ %527, %530 ], [ %535, %532 ]
  %540 = phi float [ %528, %508 ], [ %528, %530 ], [ %537, %532 ]
  %541 = fadd float %511, %539
  %542 = fadd float %512, %540
  %543 = load ptr, ptr %3, align 8, !tbaa !5
  %544 = getelementptr inbounds { float, float }, ptr %543, i64 3
  %545 = getelementptr inbounds { float, float }, ptr %544, i32 0, i32 0
  %546 = load float, ptr %545, align 4
  %547 = getelementptr inbounds { float, float }, ptr %544, i32 0, i32 1
  %548 = load float, ptr %547, align 4
  %549 = fadd float %541, %546
  %550 = fadd float %542, %548
  %551 = load ptr, ptr %3, align 8, !tbaa !5
  %552 = getelementptr inbounds { float, float }, ptr %551, i64 4
  %553 = getelementptr inbounds { float, float }, ptr %552, i32 0, i32 0
  %554 = load float, ptr %553, align 4
  %555 = getelementptr inbounds { float, float }, ptr %552, i32 0, i32 1
  %556 = load float, ptr %555, align 4
  %557 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 0
  %558 = load float, ptr %557, align 4
  %559 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 1
  %560 = load float, ptr %559, align 4
  %561 = fmul float %554, %558
  %562 = fmul float %556, %560
  %563 = fmul float %554, %560
  %564 = fmul float %556, %558
  %565 = fsub float %561, %562
  %566 = fadd float %563, %564
  %567 = fcmp uno float %565, %565
  br i1 %567, label %568, label %576, !prof !14

568:                                              ; preds = %538
  %569 = fcmp uno float %566, %566
  br i1 %569, label %570, label %576, !prof !14

570:                                              ; preds = %568
  %571 = call <2 x float> @__mulsc3(float noundef %554, float noundef %556, float noundef %558, float noundef %560) #2
  store <2 x float> %571, ptr %20, align 4
  %572 = getelementptr inbounds { float, float }, ptr %20, i32 0, i32 0
  %573 = load float, ptr %572, align 4
  %574 = getelementptr inbounds { float, float }, ptr %20, i32 0, i32 1
  %575 = load float, ptr %574, align 4
  br label %576

576:                                              ; preds = %570, %568, %538
  %577 = phi float [ %565, %538 ], [ %565, %568 ], [ %573, %570 ]
  %578 = phi float [ %566, %538 ], [ %566, %568 ], [ %575, %570 ]
  %579 = fadd float %549, %577
  %580 = fadd float %550, %578
  %581 = load ptr, ptr %3, align 8, !tbaa !5
  %582 = getelementptr inbounds { float, float }, ptr %581, i64 5
  %583 = getelementptr inbounds { float, float }, ptr %582, i32 0, i32 0
  %584 = load float, ptr %583, align 4
  %585 = getelementptr inbounds { float, float }, ptr %582, i32 0, i32 1
  %586 = load float, ptr %585, align 4
  %587 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 0
  %588 = load float, ptr %587, align 4
  %589 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 1
  %590 = load float, ptr %589, align 4
  %591 = fmul float %584, %588
  %592 = fmul float %586, %590
  %593 = fmul float %584, %590
  %594 = fmul float %586, %588
  %595 = fsub float %591, %592
  %596 = fadd float %593, %594
  %597 = fcmp uno float %595, %595
  br i1 %597, label %598, label %606, !prof !14

598:                                              ; preds = %576
  %599 = fcmp uno float %596, %596
  br i1 %599, label %600, label %606, !prof !14

600:                                              ; preds = %598
  %601 = call <2 x float> @__mulsc3(float noundef %584, float noundef %586, float noundef %588, float noundef %590) #2
  store <2 x float> %601, ptr %21, align 4
  %602 = getelementptr inbounds { float, float }, ptr %21, i32 0, i32 0
  %603 = load float, ptr %602, align 4
  %604 = getelementptr inbounds { float, float }, ptr %21, i32 0, i32 1
  %605 = load float, ptr %604, align 4
  br label %606

606:                                              ; preds = %600, %598, %576
  %607 = phi float [ %595, %576 ], [ %595, %598 ], [ %603, %600 ]
  %608 = phi float [ %596, %576 ], [ %596, %598 ], [ %605, %600 ]
  %609 = fadd float %579, %607
  %610 = fadd float %580, %608
  %611 = load ptr, ptr %4, align 8, !tbaa !5
  %612 = getelementptr inbounds { float, float }, ptr %611, i64 4
  %613 = getelementptr inbounds { float, float }, ptr %612, i32 0, i32 0
  %614 = getelementptr inbounds { float, float }, ptr %612, i32 0, i32 1
  store float %609, ptr %613, align 4
  store float %610, ptr %614, align 4
  %615 = load ptr, ptr %3, align 8, !tbaa !5
  %616 = getelementptr inbounds { float, float }, ptr %615, i64 0
  %617 = getelementptr inbounds { float, float }, ptr %616, i32 0, i32 0
  %618 = load float, ptr %617, align 4
  %619 = getelementptr inbounds { float, float }, ptr %616, i32 0, i32 1
  %620 = load float, ptr %619, align 4
  %621 = load ptr, ptr %3, align 8, !tbaa !5
  %622 = getelementptr inbounds { float, float }, ptr %621, i64 1
  %623 = getelementptr inbounds { float, float }, ptr %622, i32 0, i32 0
  %624 = load float, ptr %623, align 4
  %625 = getelementptr inbounds { float, float }, ptr %622, i32 0, i32 1
  %626 = load float, ptr %625, align 4
  %627 = getelementptr inbounds { float, float }, ptr %9, i32 0, i32 0
  %628 = load float, ptr %627, align 4
  %629 = getelementptr inbounds { float, float }, ptr %9, i32 0, i32 1
  %630 = load float, ptr %629, align 4
  %631 = fmul float %624, %628
  %632 = fmul float %626, %630
  %633 = fmul float %624, %630
  %634 = fmul float %626, %628
  %635 = fsub float %631, %632
  %636 = fadd float %633, %634
  %637 = fcmp uno float %635, %635
  br i1 %637, label %638, label %646, !prof !14

638:                                              ; preds = %606
  %639 = fcmp uno float %636, %636
  br i1 %639, label %640, label %646, !prof !14

640:                                              ; preds = %638
  %641 = call <2 x float> @__mulsc3(float noundef %624, float noundef %626, float noundef %628, float noundef %630) #2
  store <2 x float> %641, ptr %22, align 4
  %642 = getelementptr inbounds { float, float }, ptr %22, i32 0, i32 0
  %643 = load float, ptr %642, align 4
  %644 = getelementptr inbounds { float, float }, ptr %22, i32 0, i32 1
  %645 = load float, ptr %644, align 4
  br label %646

646:                                              ; preds = %640, %638, %606
  %647 = phi float [ %635, %606 ], [ %635, %638 ], [ %643, %640 ]
  %648 = phi float [ %636, %606 ], [ %636, %638 ], [ %645, %640 ]
  %649 = fadd float %618, %647
  %650 = fadd float %620, %648
  %651 = load ptr, ptr %3, align 8, !tbaa !5
  %652 = getelementptr inbounds { float, float }, ptr %651, i64 2
  %653 = getelementptr inbounds { float, float }, ptr %652, i32 0, i32 0
  %654 = load float, ptr %653, align 4
  %655 = getelementptr inbounds { float, float }, ptr %652, i32 0, i32 1
  %656 = load float, ptr %655, align 4
  %657 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 0
  %658 = load float, ptr %657, align 4
  %659 = getelementptr inbounds { float, float }, ptr %8, i32 0, i32 1
  %660 = load float, ptr %659, align 4
  %661 = fmul float %654, %658
  %662 = fmul float %656, %660
  %663 = fmul float %654, %660
  %664 = fmul float %656, %658
  %665 = fsub float %661, %662
  %666 = fadd float %663, %664
  %667 = fcmp uno float %665, %665
  br i1 %667, label %668, label %676, !prof !14

668:                                              ; preds = %646
  %669 = fcmp uno float %666, %666
  br i1 %669, label %670, label %676, !prof !14

670:                                              ; preds = %668
  %671 = call <2 x float> @__mulsc3(float noundef %654, float noundef %656, float noundef %658, float noundef %660) #2
  store <2 x float> %671, ptr %23, align 4
  %672 = getelementptr inbounds { float, float }, ptr %23, i32 0, i32 0
  %673 = load float, ptr %672, align 4
  %674 = getelementptr inbounds { float, float }, ptr %23, i32 0, i32 1
  %675 = load float, ptr %674, align 4
  br label %676

676:                                              ; preds = %670, %668, %646
  %677 = phi float [ %665, %646 ], [ %665, %668 ], [ %673, %670 ]
  %678 = phi float [ %666, %646 ], [ %666, %668 ], [ %675, %670 ]
  %679 = fadd float %649, %677
  %680 = fadd float %650, %678
  %681 = load ptr, ptr %3, align 8, !tbaa !5
  %682 = getelementptr inbounds { float, float }, ptr %681, i64 3
  %683 = getelementptr inbounds { float, float }, ptr %682, i32 0, i32 0
  %684 = load float, ptr %683, align 4
  %685 = getelementptr inbounds { float, float }, ptr %682, i32 0, i32 1
  %686 = load float, ptr %685, align 4
  %687 = fsub float %679, %684
  %688 = fsub float %680, %686
  %689 = load ptr, ptr %3, align 8, !tbaa !5
  %690 = getelementptr inbounds { float, float }, ptr %689, i64 4
  %691 = getelementptr inbounds { float, float }, ptr %690, i32 0, i32 0
  %692 = load float, ptr %691, align 4
  %693 = getelementptr inbounds { float, float }, ptr %690, i32 0, i32 1
  %694 = load float, ptr %693, align 4
  %695 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 0
  %696 = load float, ptr %695, align 4
  %697 = getelementptr inbounds { float, float }, ptr %7, i32 0, i32 1
  %698 = load float, ptr %697, align 4
  %699 = fmul float %692, %696
  %700 = fmul float %694, %698
  %701 = fmul float %692, %698
  %702 = fmul float %694, %696
  %703 = fsub float %699, %700
  %704 = fadd float %701, %702
  %705 = fcmp uno float %703, %703
  br i1 %705, label %706, label %714, !prof !14

706:                                              ; preds = %676
  %707 = fcmp uno float %704, %704
  br i1 %707, label %708, label %714, !prof !14

708:                                              ; preds = %706
  %709 = call <2 x float> @__mulsc3(float noundef %692, float noundef %694, float noundef %696, float noundef %698) #2
  store <2 x float> %709, ptr %24, align 4
  %710 = getelementptr inbounds { float, float }, ptr %24, i32 0, i32 0
  %711 = load float, ptr %710, align 4
  %712 = getelementptr inbounds { float, float }, ptr %24, i32 0, i32 1
  %713 = load float, ptr %712, align 4
  br label %714

714:                                              ; preds = %708, %706, %676
  %715 = phi float [ %703, %676 ], [ %703, %706 ], [ %711, %708 ]
  %716 = phi float [ %704, %676 ], [ %704, %706 ], [ %713, %708 ]
  %717 = fadd float %687, %715
  %718 = fadd float %688, %716
  %719 = load ptr, ptr %3, align 8, !tbaa !5
  %720 = getelementptr inbounds { float, float }, ptr %719, i64 5
  %721 = getelementptr inbounds { float, float }, ptr %720, i32 0, i32 0
  %722 = load float, ptr %721, align 4
  %723 = getelementptr inbounds { float, float }, ptr %720, i32 0, i32 1
  %724 = load float, ptr %723, align 4
  %725 = getelementptr inbounds { float, float }, ptr %6, i32 0, i32 0
  %726 = load float, ptr %725, align 4
  %727 = getelementptr inbounds { float, float }, ptr %6, i32 0, i32 1
  %728 = load float, ptr %727, align 4
  %729 = fmul float %722, %726
  %730 = fmul float %724, %728
  %731 = fmul float %722, %728
  %732 = fmul float %724, %726
  %733 = fsub float %729, %730
  %734 = fadd float %731, %732
  %735 = fcmp uno float %733, %733
  br i1 %735, label %736, label %744, !prof !14

736:                                              ; preds = %714
  %737 = fcmp uno float %734, %734
  br i1 %737, label %738, label %744, !prof !14

738:                                              ; preds = %736
  %739 = call <2 x float> @__mulsc3(float noundef %722, float noundef %724, float noundef %726, float noundef %728) #2
  store <2 x float> %739, ptr %25, align 4
  %740 = getelementptr inbounds { float, float }, ptr %25, i32 0, i32 0
  %741 = load float, ptr %740, align 4
  %742 = getelementptr inbounds { float, float }, ptr %25, i32 0, i32 1
  %743 = load float, ptr %742, align 4
  br label %744

744:                                              ; preds = %738, %736, %714
  %745 = phi float [ %733, %714 ], [ %733, %736 ], [ %741, %738 ]
  %746 = phi float [ %734, %714 ], [ %734, %736 ], [ %743, %738 ]
  %747 = fadd float %717, %745
  %748 = fadd float %718, %746
  %749 = load ptr, ptr %4, align 8, !tbaa !5
  %750 = getelementptr inbounds { float, float }, ptr %749, i64 5
  %751 = getelementptr inbounds { float, float }, ptr %750, i32 0, i32 0
  %752 = getelementptr inbounds { float, float }, ptr %750, i32 0, i32 1
  store float %747, ptr %751, align 4
  store float %748, ptr %752, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #2
  ret i32 0
}

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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, !6, i64 8}
!10 = !{!"fftplan_s", !11, i64 0, !6, i64 8, !6, i64 16, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !6, i64 40, !6, i64 48, !6, i64 56, !7, i64 64}
!11 = !{!"int", !7, i64 0}
!12 = !{!10, !6, i64 16}
!13 = !{!10, !11, i64 24}
!14 = !{!"branch_weights", i32 1, i32 1048575}


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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @fft_execute_dft_6(ptr nocapture noundef readonly %0) local_unnamed_addr #0 {
  %2 = getelementptr inbounds i8, ptr %0, i64 8
  %3 = load ptr, ptr %2, align 8, !tbaa !5
  %4 = getelementptr inbounds i8, ptr %0, i64 16
  %5 = load ptr, ptr %4, align 8, !tbaa !11
  %6 = getelementptr inbounds i8, ptr %3, i64 8
  %7 = getelementptr inbounds i8, ptr %3, i64 12
  %8 = getelementptr inbounds i8, ptr %3, i64 16
  %9 = getelementptr inbounds i8, ptr %3, i64 20
  %10 = getelementptr inbounds i8, ptr %3, i64 24
  %11 = getelementptr inbounds i8, ptr %3, i64 32
  %12 = getelementptr inbounds i8, ptr %3, i64 36
  %13 = getelementptr inbounds i8, ptr %3, i64 40
  %14 = getelementptr inbounds i8, ptr %3, i64 44
  %15 = load <2 x float>, ptr %3, align 4
  %16 = load <2 x float>, ptr %6, align 4
  %17 = fadd <2 x float> %15, %16
  %18 = load <2 x float>, ptr %8, align 4
  %19 = fadd <2 x float> %17, %18
  %20 = load <2 x float>, ptr %10, align 4
  %21 = fadd <2 x float> %19, %20
  %22 = load <2 x float>, ptr %11, align 4
  %23 = fadd <2 x float> %21, %22
  %24 = load <2 x float>, ptr %13, align 4
  %25 = fadd <2 x float> %23, %24
  store <2 x float> %25, ptr %5, align 4
  %26 = getelementptr inbounds i8, ptr %0, i64 24
  %27 = load i32, ptr %26, align 8, !tbaa !12
  %28 = icmp eq i32 %27, 1
  %. = select i1 %28, float 0x3FEBB67AE0000000, float 0xBFEBB67AE0000000
  %.105 = select i1 %28, float 0xBFEBB67AE0000000, float 0x3FEBB67AE0000000
  %29 = load <2 x float>, ptr %3, align 4
  %30 = load <2 x float>, ptr %6, align 4
  %31 = insertelement <2 x float> poison, float %.105, i64 0
  %32 = shufflevector <2 x float> %31, <2 x float> poison, <2 x i32> zeroinitializer
  %33 = fmul <2 x float> %32, %30
  %34 = shufflevector <2 x float> %33, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %35 = fmul <2 x float> %30, <float 5.000000e-01, float 5.000000e-01>
  %36 = fsub <2 x float> %35, %34
  %37 = fadd <2 x float> %35, %34
  %38 = shufflevector <2 x float> %36, <2 x float> %37, <2 x i32> <i32 0, i32 3>
  %39 = extractelement <2 x float> %36, i64 0
  %40 = fcmp uno float %39, 0.000000e+00
  br i1 %40, label %41, label %48, !prof !13

41:                                               ; preds = %1
  %42 = extractelement <2 x float> %37, i64 1
  %43 = fcmp uno float %42, 0.000000e+00
  br i1 %43, label %44, label %48, !prof !13

44:                                               ; preds = %41
  %45 = extractelement <2 x float> %30, i64 0
  %46 = extractelement <2 x float> %30, i64 1
  %47 = tail call <2 x float> @__mulsc3(float noundef %45, float noundef %46, float noundef 5.000000e-01, float noundef %.105) #1
  br label %48

48:                                               ; preds = %44, %41, %1
  %49 = phi <2 x float> [ %38, %1 ], [ %38, %41 ], [ %47, %44 ]
  %50 = fadd <2 x float> %29, %49
  %51 = load float, ptr %8, align 4
  %52 = load float, ptr %9, align 4
  %53 = insertelement <2 x float> <float -5.000000e-01, float poison>, float %.105, i64 1
  %54 = insertelement <2 x float> poison, float %51, i64 0
  %55 = shufflevector <2 x float> %54, <2 x float> poison, <2 x i32> zeroinitializer
  %56 = fmul <2 x float> %53, %55
  %57 = insertelement <2 x float> %32, float 5.000000e-01, i64 1
  %58 = insertelement <2 x float> poison, float %52, i64 0
  %59 = shufflevector <2 x float> %58, <2 x float> poison, <2 x i32> zeroinitializer
  %60 = fmul <2 x float> %57, %59
  %61 = fsub <2 x float> %56, %60
  %62 = extractelement <2 x float> %61, i64 0
  %63 = fcmp uno float %62, 0.000000e+00
  br i1 %63, label %64, label %69, !prof !13

64:                                               ; preds = %48
  %65 = extractelement <2 x float> %61, i64 1
  %66 = fcmp uno float %65, 0.000000e+00
  br i1 %66, label %67, label %69, !prof !13

67:                                               ; preds = %64
  %68 = tail call <2 x float> @__mulsc3(float noundef %51, float noundef %52, float noundef -5.000000e-01, float noundef %.105) #1
  br label %69

69:                                               ; preds = %67, %64, %48
  %70 = phi <2 x float> [ %61, %48 ], [ %61, %64 ], [ %68, %67 ]
  %71 = fadd <2 x float> %50, %70
  %72 = load float, ptr %11, align 4
  %73 = load float, ptr %12, align 4
  %74 = load <2 x float>, ptr %10, align 4
  %75 = fsub <2 x float> %71, %74
  %76 = insertelement <2 x float> <float -5.000000e-01, float poison>, float %., i64 1
  %77 = insertelement <2 x float> poison, float %72, i64 0
  %78 = shufflevector <2 x float> %77, <2 x float> poison, <2 x i32> zeroinitializer
  %79 = fmul <2 x float> %76, %78
  %80 = insertelement <2 x float> <float poison, float 5.000000e-01>, float %., i64 0
  %81 = insertelement <2 x float> poison, float %73, i64 0
  %82 = shufflevector <2 x float> %81, <2 x float> poison, <2 x i32> zeroinitializer
  %83 = fmul <2 x float> %80, %82
  %84 = fsub <2 x float> %79, %83
  %85 = extractelement <2 x float> %84, i64 0
  %86 = fcmp uno float %85, 0.000000e+00
  br i1 %86, label %87, label %92, !prof !13

87:                                               ; preds = %69
  %88 = extractelement <2 x float> %84, i64 1
  %89 = fcmp uno float %88, 0.000000e+00
  br i1 %89, label %90, label %92, !prof !13

90:                                               ; preds = %87
  %91 = tail call <2 x float> @__mulsc3(float noundef %72, float noundef %73, float noundef -5.000000e-01, float noundef %.) #1
  br label %92

92:                                               ; preds = %90, %87, %69
  %93 = phi <2 x float> [ %84, %69 ], [ %84, %87 ], [ %91, %90 ]
  %94 = fadd <2 x float> %75, %93
  %95 = load <2 x float>, ptr %13, align 4
  %96 = shufflevector <2 x float> %76, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %97 = fmul <2 x float> %96, %95
  %98 = shufflevector <2 x float> %97, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %99 = fmul <2 x float> %95, <float 5.000000e-01, float 5.000000e-01>
  %100 = fsub <2 x float> %99, %98
  %101 = fadd <2 x float> %99, %98
  %102 = shufflevector <2 x float> %100, <2 x float> %101, <2 x i32> <i32 0, i32 3>
  %103 = extractelement <2 x float> %100, i64 0
  %104 = fcmp uno float %103, 0.000000e+00
  br i1 %104, label %105, label %112, !prof !13

105:                                              ; preds = %92
  %106 = extractelement <2 x float> %101, i64 1
  %107 = fcmp uno float %106, 0.000000e+00
  br i1 %107, label %108, label %112, !prof !13

108:                                              ; preds = %105
  %109 = extractelement <2 x float> %95, i64 0
  %110 = extractelement <2 x float> %95, i64 1
  %111 = tail call <2 x float> @__mulsc3(float noundef %109, float noundef %110, float noundef 5.000000e-01, float noundef %.) #1
  br label %112

112:                                              ; preds = %108, %105, %92
  %113 = phi <2 x float> [ %102, %92 ], [ %102, %105 ], [ %111, %108 ]
  %114 = fadd <2 x float> %94, %113
  %115 = getelementptr inbounds i8, ptr %5, i64 8
  store <2 x float> %114, ptr %115, align 4
  %116 = load float, ptr %6, align 4
  %117 = load float, ptr %7, align 4
  %118 = load <2 x float>, ptr %3, align 4
  %119 = insertelement <2 x float> <float -5.000000e-01, float poison>, float %.105, i64 1
  %120 = insertelement <2 x float> poison, float %116, i64 0
  %121 = shufflevector <2 x float> %120, <2 x float> poison, <2 x i32> zeroinitializer
  %122 = fmul <2 x float> %119, %121
  %123 = insertelement <2 x float> <float poison, float 5.000000e-01>, float %.105, i64 0
  %124 = insertelement <2 x float> poison, float %117, i64 0
  %125 = shufflevector <2 x float> %124, <2 x float> poison, <2 x i32> zeroinitializer
  %126 = fmul <2 x float> %123, %125
  %127 = fsub <2 x float> %122, %126
  %128 = extractelement <2 x float> %127, i64 0
  %129 = fcmp uno float %128, 0.000000e+00
  br i1 %129, label %130, label %135, !prof !13

130:                                              ; preds = %112
  %131 = extractelement <2 x float> %127, i64 1
  %132 = fcmp uno float %131, 0.000000e+00
  br i1 %132, label %133, label %135, !prof !13

133:                                              ; preds = %130
  %134 = tail call <2 x float> @__mulsc3(float noundef %116, float noundef %117, float noundef -5.000000e-01, float noundef %.105) #1
  br label %135

135:                                              ; preds = %133, %130, %112
  %136 = phi <2 x float> [ %127, %112 ], [ %127, %130 ], [ %134, %133 ]
  %137 = fadd <2 x float> %118, %136
  %138 = load float, ptr %8, align 4
  %139 = load float, ptr %9, align 4
  %140 = insertelement <2 x float> poison, float %138, i64 0
  %141 = shufflevector <2 x float> %140, <2 x float> poison, <2 x i32> zeroinitializer
  %142 = fmul <2 x float> %76, %141
  %143 = insertelement <2 x float> poison, float %139, i64 0
  %144 = shufflevector <2 x float> %143, <2 x float> poison, <2 x i32> zeroinitializer
  %145 = fmul <2 x float> %80, %144
  %146 = fsub <2 x float> %142, %145
  %147 = extractelement <2 x float> %146, i64 0
  %148 = fcmp uno float %147, 0.000000e+00
  br i1 %148, label %149, label %154, !prof !13

149:                                              ; preds = %135
  %150 = extractelement <2 x float> %146, i64 1
  %151 = fcmp uno float %150, 0.000000e+00
  br i1 %151, label %152, label %154, !prof !13

152:                                              ; preds = %149
  %153 = tail call <2 x float> @__mulsc3(float noundef %138, float noundef %139, float noundef -5.000000e-01, float noundef %.) #1
  br label %154

154:                                              ; preds = %152, %149, %135
  %155 = phi <2 x float> [ %146, %135 ], [ %146, %149 ], [ %153, %152 ]
  %156 = fadd <2 x float> %137, %155
  %157 = load float, ptr %11, align 4
  %158 = load float, ptr %12, align 4
  %159 = load <2 x float>, ptr %10, align 4
  %160 = fadd <2 x float> %156, %159
  %161 = insertelement <2 x float> poison, float %157, i64 0
  %162 = shufflevector <2 x float> %161, <2 x float> poison, <2 x i32> zeroinitializer
  %163 = fmul <2 x float> %119, %162
  %164 = insertelement <2 x float> poison, float %158, i64 0
  %165 = shufflevector <2 x float> %164, <2 x float> poison, <2 x i32> zeroinitializer
  %166 = fmul <2 x float> %123, %165
  %167 = fsub <2 x float> %163, %166
  %168 = extractelement <2 x float> %167, i64 0
  %169 = fcmp uno float %168, 0.000000e+00
  br i1 %169, label %170, label %175, !prof !13

170:                                              ; preds = %154
  %171 = extractelement <2 x float> %167, i64 1
  %172 = fcmp uno float %171, 0.000000e+00
  br i1 %172, label %173, label %175, !prof !13

173:                                              ; preds = %170
  %174 = tail call <2 x float> @__mulsc3(float noundef %157, float noundef %158, float noundef -5.000000e-01, float noundef %.105) #1
  br label %175

175:                                              ; preds = %173, %170, %154
  %176 = phi <2 x float> [ %167, %154 ], [ %167, %170 ], [ %174, %173 ]
  %177 = fadd <2 x float> %160, %176
  %178 = load float, ptr %13, align 4
  %179 = load float, ptr %14, align 4
  %180 = insertelement <2 x float> poison, float %178, i64 0
  %181 = shufflevector <2 x float> %180, <2 x float> poison, <2 x i32> zeroinitializer
  %182 = fmul <2 x float> %76, %181
  %183 = insertelement <2 x float> poison, float %179, i64 0
  %184 = shufflevector <2 x float> %183, <2 x float> poison, <2 x i32> zeroinitializer
  %185 = fmul <2 x float> %80, %184
  %186 = fsub <2 x float> %182, %185
  %187 = extractelement <2 x float> %186, i64 0
  %188 = fcmp uno float %187, 0.000000e+00
  br i1 %188, label %189, label %194, !prof !13

189:                                              ; preds = %175
  %190 = extractelement <2 x float> %186, i64 1
  %191 = fcmp uno float %190, 0.000000e+00
  br i1 %191, label %192, label %194, !prof !13

192:                                              ; preds = %189
  %193 = tail call <2 x float> @__mulsc3(float noundef %178, float noundef %179, float noundef -5.000000e-01, float noundef %.) #1
  br label %194

194:                                              ; preds = %192, %189, %175
  %195 = phi <2 x float> [ %186, %175 ], [ %186, %189 ], [ %193, %192 ]
  %196 = fadd <2 x float> %177, %195
  %197 = getelementptr inbounds i8, ptr %5, i64 16
  store <2 x float> %196, ptr %197, align 4
  %198 = getelementptr inbounds i8, ptr %5, i64 24
  %199 = load <2 x float>, ptr %3, align 4
  %200 = load <2 x float>, ptr %6, align 4
  %201 = fsub <2 x float> %199, %200
  %202 = load <2 x float>, ptr %8, align 4
  %203 = fadd <2 x float> %201, %202
  %204 = load <2 x float>, ptr %10, align 4
  %205 = fsub <2 x float> %203, %204
  %206 = load <2 x float>, ptr %11, align 4
  %207 = fadd <2 x float> %205, %206
  %208 = load <2 x float>, ptr %13, align 4
  %209 = fsub <2 x float> %207, %208
  store <2 x float> %209, ptr %198, align 4
  %210 = load float, ptr %6, align 4
  %211 = load float, ptr %7, align 4
  %212 = load <2 x float>, ptr %3, align 4
  %213 = insertelement <2 x float> poison, float %210, i64 0
  %214 = shufflevector <2 x float> %213, <2 x float> poison, <2 x i32> zeroinitializer
  %215 = fmul <2 x float> %76, %214
  %216 = insertelement <2 x float> poison, float %211, i64 0
  %217 = shufflevector <2 x float> %216, <2 x float> poison, <2 x i32> zeroinitializer
  %218 = fmul <2 x float> %80, %217
  %219 = fsub <2 x float> %215, %218
  %220 = extractelement <2 x float> %219, i64 0
  %221 = fcmp uno float %220, 0.000000e+00
  br i1 %221, label %222, label %227, !prof !13

222:                                              ; preds = %194
  %223 = extractelement <2 x float> %219, i64 1
  %224 = fcmp uno float %223, 0.000000e+00
  br i1 %224, label %225, label %227, !prof !13

225:                                              ; preds = %222
  %226 = tail call <2 x float> @__mulsc3(float noundef %210, float noundef %211, float noundef -5.000000e-01, float noundef %.) #1
  br label %227

227:                                              ; preds = %225, %222, %194
  %228 = phi <2 x float> [ %219, %194 ], [ %219, %222 ], [ %226, %225 ]
  %229 = fadd <2 x float> %212, %228
  %230 = load float, ptr %8, align 4
  %231 = load float, ptr %9, align 4
  %232 = insertelement <2 x float> poison, float %230, i64 0
  %233 = shufflevector <2 x float> %232, <2 x float> poison, <2 x i32> zeroinitializer
  %234 = fmul <2 x float> %119, %233
  %235 = insertelement <2 x float> poison, float %231, i64 0
  %236 = shufflevector <2 x float> %235, <2 x float> poison, <2 x i32> zeroinitializer
  %237 = fmul <2 x float> %123, %236
  %238 = fsub <2 x float> %234, %237
  %239 = extractelement <2 x float> %238, i64 0
  %240 = fcmp uno float %239, 0.000000e+00
  br i1 %240, label %241, label %246, !prof !13

241:                                              ; preds = %227
  %242 = extractelement <2 x float> %238, i64 1
  %243 = fcmp uno float %242, 0.000000e+00
  br i1 %243, label %244, label %246, !prof !13

244:                                              ; preds = %241
  %245 = tail call <2 x float> @__mulsc3(float noundef %230, float noundef %231, float noundef -5.000000e-01, float noundef %.105) #1
  br label %246

246:                                              ; preds = %244, %241, %227
  %247 = phi <2 x float> [ %238, %227 ], [ %238, %241 ], [ %245, %244 ]
  %248 = fadd <2 x float> %229, %247
  %249 = load float, ptr %11, align 4
  %250 = load float, ptr %12, align 4
  %251 = load <2 x float>, ptr %10, align 4
  %252 = fadd <2 x float> %248, %251
  %253 = insertelement <2 x float> poison, float %249, i64 0
  %254 = shufflevector <2 x float> %253, <2 x float> poison, <2 x i32> zeroinitializer
  %255 = fmul <2 x float> %76, %254
  %256 = insertelement <2 x float> poison, float %250, i64 0
  %257 = shufflevector <2 x float> %256, <2 x float> poison, <2 x i32> zeroinitializer
  %258 = fmul <2 x float> %80, %257
  %259 = fsub <2 x float> %255, %258
  %260 = extractelement <2 x float> %259, i64 0
  %261 = fcmp uno float %260, 0.000000e+00
  br i1 %261, label %262, label %267, !prof !13

262:                                              ; preds = %246
  %263 = extractelement <2 x float> %259, i64 1
  %264 = fcmp uno float %263, 0.000000e+00
  br i1 %264, label %265, label %267, !prof !13

265:                                              ; preds = %262
  %266 = tail call <2 x float> @__mulsc3(float noundef %249, float noundef %250, float noundef -5.000000e-01, float noundef %.) #1
  br label %267

267:                                              ; preds = %265, %262, %246
  %268 = phi <2 x float> [ %259, %246 ], [ %259, %262 ], [ %266, %265 ]
  %269 = fadd <2 x float> %252, %268
  %270 = load float, ptr %13, align 4
  %271 = load float, ptr %14, align 4
  %272 = insertelement <2 x float> poison, float %270, i64 0
  %273 = shufflevector <2 x float> %272, <2 x float> poison, <2 x i32> zeroinitializer
  %274 = fmul <2 x float> %119, %273
  %275 = insertelement <2 x float> poison, float %271, i64 0
  %276 = shufflevector <2 x float> %275, <2 x float> poison, <2 x i32> zeroinitializer
  %277 = fmul <2 x float> %123, %276
  %278 = fsub <2 x float> %274, %277
  %279 = extractelement <2 x float> %278, i64 0
  %280 = fcmp uno float %279, 0.000000e+00
  br i1 %280, label %281, label %286, !prof !13

281:                                              ; preds = %267
  %282 = extractelement <2 x float> %278, i64 1
  %283 = fcmp uno float %282, 0.000000e+00
  br i1 %283, label %284, label %286, !prof !13

284:                                              ; preds = %281
  %285 = tail call <2 x float> @__mulsc3(float noundef %270, float noundef %271, float noundef -5.000000e-01, float noundef %.105) #1
  br label %286

286:                                              ; preds = %284, %281, %267
  %287 = phi <2 x float> [ %278, %267 ], [ %278, %281 ], [ %285, %284 ]
  %288 = fadd <2 x float> %269, %287
  %289 = getelementptr inbounds i8, ptr %5, i64 32
  store <2 x float> %288, ptr %289, align 4
  %290 = load <2 x float>, ptr %3, align 4
  %291 = load <2 x float>, ptr %6, align 4
  %292 = insertelement <2 x float> poison, float %., i64 0
  %293 = shufflevector <2 x float> %292, <2 x float> poison, <2 x i32> zeroinitializer
  %294 = fmul <2 x float> %293, %291
  %295 = shufflevector <2 x float> %294, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %296 = fmul <2 x float> %291, <float 5.000000e-01, float 5.000000e-01>
  %297 = fsub <2 x float> %296, %295
  %298 = fadd <2 x float> %296, %295
  %299 = shufflevector <2 x float> %297, <2 x float> %298, <2 x i32> <i32 0, i32 3>
  %300 = extractelement <2 x float> %297, i64 0
  %301 = fcmp uno float %300, 0.000000e+00
  br i1 %301, label %302, label %309, !prof !13

302:                                              ; preds = %286
  %303 = extractelement <2 x float> %298, i64 1
  %304 = fcmp uno float %303, 0.000000e+00
  br i1 %304, label %305, label %309, !prof !13

305:                                              ; preds = %302
  %306 = extractelement <2 x float> %291, i64 0
  %307 = extractelement <2 x float> %291, i64 1
  %308 = tail call <2 x float> @__mulsc3(float noundef %306, float noundef %307, float noundef 5.000000e-01, float noundef %.) #1
  br label %309

309:                                              ; preds = %305, %302, %286
  %310 = phi <2 x float> [ %299, %286 ], [ %299, %302 ], [ %308, %305 ]
  %311 = load float, ptr %8, align 4
  %312 = load float, ptr %9, align 4
  %313 = insertelement <2 x float> <float -5.000000e-01, float poison>, float %., i64 1
  %314 = insertelement <2 x float> poison, float %311, i64 0
  %315 = shufflevector <2 x float> %314, <2 x float> poison, <2 x i32> zeroinitializer
  %316 = fmul <2 x float> %313, %315
  %317 = insertelement <2 x float> %293, float 5.000000e-01, i64 1
  %318 = insertelement <2 x float> poison, float %312, i64 0
  %319 = shufflevector <2 x float> %318, <2 x float> poison, <2 x i32> zeroinitializer
  %320 = fmul <2 x float> %317, %319
  %321 = fsub <2 x float> %316, %320
  %322 = extractelement <2 x float> %321, i64 0
  %323 = fcmp uno float %322, 0.000000e+00
  br i1 %323, label %324, label %329, !prof !13

324:                                              ; preds = %309
  %325 = extractelement <2 x float> %321, i64 1
  %326 = fcmp uno float %325, 0.000000e+00
  br i1 %326, label %327, label %329, !prof !13

327:                                              ; preds = %324
  %328 = tail call <2 x float> @__mulsc3(float noundef %311, float noundef %312, float noundef -5.000000e-01, float noundef %.) #1
  br label %329

329:                                              ; preds = %327, %324, %309
  %330 = phi <2 x float> [ %321, %309 ], [ %321, %324 ], [ %328, %327 ]
  %331 = load float, ptr %11, align 4
  %332 = load float, ptr %12, align 4
  %333 = load <2 x float>, ptr %10, align 4
  %334 = insertelement <2 x float> poison, float %331, i64 0
  %335 = shufflevector <2 x float> %334, <2 x float> poison, <2 x i32> zeroinitializer
  %336 = fmul <2 x float> %119, %335
  %337 = insertelement <2 x float> poison, float %332, i64 0
  %338 = shufflevector <2 x float> %337, <2 x float> poison, <2 x i32> zeroinitializer
  %339 = fmul <2 x float> %123, %338
  %340 = fsub <2 x float> %336, %339
  %341 = extractelement <2 x float> %340, i64 0
  %342 = fcmp uno float %341, 0.000000e+00
  br i1 %342, label %343, label %348, !prof !13

343:                                              ; preds = %329
  %344 = extractelement <2 x float> %340, i64 1
  %345 = fcmp uno float %344, 0.000000e+00
  br i1 %345, label %346, label %348, !prof !13

346:                                              ; preds = %343
  %347 = tail call <2 x float> @__mulsc3(float noundef %331, float noundef %332, float noundef -5.000000e-01, float noundef %.105) #1
  br label %348

348:                                              ; preds = %346, %343, %329
  %349 = phi <2 x float> [ %340, %329 ], [ %340, %343 ], [ %347, %346 ]
  %350 = load <2 x float>, ptr %13, align 4
  %351 = shufflevector <2 x float> %119, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %352 = fmul <2 x float> %351, %350
  %353 = shufflevector <2 x float> %352, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %354 = fmul <2 x float> %350, <float 5.000000e-01, float 5.000000e-01>
  %355 = fsub <2 x float> %354, %353
  %356 = fadd <2 x float> %354, %353
  %357 = shufflevector <2 x float> %355, <2 x float> %356, <2 x i32> <i32 0, i32 3>
  %358 = extractelement <2 x float> %355, i64 0
  %359 = fcmp uno float %358, 0.000000e+00
  br i1 %359, label %360, label %367, !prof !13

360:                                              ; preds = %348
  %361 = extractelement <2 x float> %356, i64 1
  %362 = fcmp uno float %361, 0.000000e+00
  br i1 %362, label %363, label %367, !prof !13

363:                                              ; preds = %360
  %364 = extractelement <2 x float> %350, i64 0
  %365 = extractelement <2 x float> %350, i64 1
  %366 = tail call <2 x float> @__mulsc3(float noundef %364, float noundef %365, float noundef 5.000000e-01, float noundef %.105) #1
  br label %367

367:                                              ; preds = %363, %360, %348
  %368 = phi <2 x float> [ %357, %348 ], [ %357, %360 ], [ %366, %363 ]
  %369 = fadd <2 x float> %290, %310
  %370 = getelementptr inbounds i8, ptr %5, i64 40
  %371 = fadd <2 x float> %369, %330
  %372 = fsub <2 x float> %371, %333
  %373 = fadd <2 x float> %372, %349
  %374 = fadd <2 x float> %373, %368
  store <2 x float> %374, ptr %370, align 4
  ret i32 0
}

declare <2 x float> @__mulsc3(float, float, float, float) local_unnamed_addr

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 = { 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, !10, i64 8}
!6 = !{!"fftplan_s", !7, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !10, i64 40, !10, i64 48, !10, i64 56, !8, i64 64}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!6, !10, i64 16}
!12 = !{!6, !7, i64 24}
!13 = !{!"branch_weights", i32 1, i32 1048575}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass